home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
EMULATOR
/
CPC_DEMO
/
!CPC_Demo
/
!Help
< prev
next >
Wrap
Text File
|
1996-02-15
|
15KB
|
331 lines
!CPC_Demo - An Amstrad CPC emulator for Acorn RISC OS machines (demo)
=====================================================================
[For information on the full version of this emulator, !CPC, see
the end of this document.]
Copyright
---------
!CPC_Demo is Copyright (C) 1996 Mark RISON. This copyright extends to
all the files provided in or with !CPC_Demo, except the ROM images
below. The BASIC and OS ROM images are copyright Amstrad and Locomotive
Software, and are distributed with their kind permission. The AMSDOS
ROM image is copyright Amstrad and Digital Research (Novell), and is
distributed with their kind permission (well, Amstrad's at least...).
Conditions of use
-----------------
You may only use !CPC_Demo for your own personal and non-commercial
purposes. You may freely distribute !CPC_Demo (including by FTP or BBS)
provided you do not modify it in any way (you must distribute it in its
entirety, including this file), and do not charge anything, either
directly or indirectly. You may not, however, put !CPC_Demo on CD
without explicit permission.
No guarantee of any kind is made concerning operation of !CPC_Demo. You
use !CPC_Demo at your own risk; you are advised to save all your work
before launching !CPC_Demo.
Introduction
------------
The Amstrad CPC range of computers was a hugely successful range of
8-bit computers. There were 3 models. The CPC464 was released in 1984
and consisted of a central unit, a cassette unit and a monitor in one
package. The CPC664 was released in 1985, and had a 3" disc drive
instead of the cassette unit. The CPC6128 was released soon after, the
only significant difference being the addition of 64K of bank-switched
RAM.
All models were based around a Z80 CPU running at an effective 3.3 MHz.
There was 64K of main RAM and 32K of ROM to contain the BASIC and OS;
the disc drive models had an extra 16K ROM to hold the DOS, and the 6128
had an extra 64K of RAM. The screen could be operated in one of three
modes: 640x200 in 2 colours, 320x200 in 4 colours, and 160x200 in 16
colours -- from a palette of 27 colours (27 greens on the green screen
models). Sound capabilities ran to 3 channels with noise and hardware
enveloping if desired. Two joysticks could be used with the machine.
CP/M was an option on the disc models (CP/M 2.2 on both, and CP/M+ on
the 6128).
!CPC_Demo aims to emulate a real CPC in sufficient detail to allow
programs written for the CPC to be used under RISC OS. This entails
quite considerable translation from the CPC world to the RISC OS world;
nonetheless !CPC_Demo is roughly as fast as the real thing on machines
with an ARM3 (and faster with newer machines).
A reminder of RISC OS operations
--------------------------------
To open a RISC OS directory, double-click on it. If it's an application
(it's got a ! at the start), press Shift as well, else the application
will be run. To copy files from one directory to another, open both and
drag from one to the other. To load a given file into a text editor
(e.g. !Edit) double-click on it while pressing Shift -- when you've
finished the editing pressing F3 followed by Return should save the
edited version. Finally, to access the command line (to type *
commands, setting variables, for example), press F12 -- when you've
finished press Return on its own.
File formats
------------
The most common file format (after dearchiving) is the disc image
format. This can be recognised by filenames ending in .DSK (/DSK under
the standard DOS mapping). Discs must be used under AMSDOS (see below)
-- use CAT to see what's on them, and something like RUN"MEGADETH" to
run them (file extensions need not normally be specified). Do not
attempt to write to discs: !CPC_Demo does not support this at present.
Discs should be placed in the subdirectory Discs in !CPC_Demo. If you
set a disc's filetype to "CPC disc" (&065 at present), double-clicking on
the disc with launch !CPC_Demo with it.
Another file format is the snapshot format, recognisable by filenames
ending in .SNA (/SNA). Snaps must be used under PseuDOS (see below).
Use |SNAP,"MEGADETH" to launch snapshot MEGADETH. Snaps should be
placed in the subdirectory Snaps in !CPC_Demo. If you set a snap's
filetype to "CPC snap" (&064 at present), double-clicking on the snap
will launch !CPC_Demo with it. |SNAPS will give a list of snapshots.
The last file format is the native AMSDOS format, consisting of one or
more files with filenames typically ending in .BAS or .BIN. These need
to be converted to PseuDOS format using !AmsToArc (see below), and
placed in the subdirectory Tapes in !CPC_Demo. These programs are
typically launched with RUN"MEGADETH".
Using !CPC_Demo
---------------
!CPC_Demo should mostly behave just like a real CPC! !CPC_Demo has some
extra features, however. You can reset the CPC not only using
Shift-Ctrl-Esc, but also by pressing Alt-Esc (you may need to try a few
times for this to work). You can quit !CPC_Demo by pressing Alt-F12, or
by typing |QUIT (if you're using PseuDOS and not AMSDOS).
One joystick is emulated, using Insert, Home, Page Up, Page Down, Num
Lock and keypad / for left, right, up, down, main fire and secondary
fire respectively. !CPC_Demo also supports two standard Acorn
joysticks, as found on the A3010, which will behave just like CPC
joysticks.
If a program seems to be attempting to constantly change the screen
colours, you can press Alt-P to lock out changes. You can try this a
few times until you get a suitable palette. If a program seems to be
attempting to constantly change the screen resolution, you can press
Alt-M to lock out changes -- again, you can keep trying until the bit
you're interested in appears right.
You can squeeze extra performance out of !CPC by running in MODE 12
rather than a higher resolution mode such as MODE 20. This is
especially the case for games which use screen banking for smooth
animation -- symptoms are faint horizontal interleave patterns on the
screen. In certain cases, turning palette switching off (with Alt-P)
will also speed things up.
If the machine seems to hang and neither Alt-Esc nor Alt-F12 seem to get
things back under control, you can attempt to kill the emulator off
with Alt-Delete. This should be a solution of last resort! If even
this does not seem to help, well ... you were advised to save all your
work before launching !CPC_Demo, weren't you?
PseuDOS and AMSDOS
------------------
AMSDOS is the original DOS provided with disc models. It supports discs
containing about 170K of data. Various | commands are provided by it to
handle disc files (|ERA, |REN, etc.). !CPC_Demo only supports enough of
AMSDOS to get standard disc images to load -- complex disc operations,
as well as writing, will fail. To use AMSDOS the system variable
CPC$DOS should be set to AMSDOS (use *SET CPC$DOS AMSDOS from the
command line to do so). The disc to be used can be set in CPC$Disc
(e.g. *SET CPC$Disc Megadeth); alternatively, if this variable is not
set, a list of available discs will be given, and you will be asked to
choose one.
PseuDOS is a DOS whose purpose is to allow 'tape' files to be used.
These files are held as RISC OS files in a special format. PseuDOS
provides full access to these files, both in reading and in writing. In
addition, PseuDOS redefines the CPC keyboard mappings to follow the UK
RISC OS keyboard -- so if you're using AMSDOS some keys will be wrong
(in particular, " will be obtained with Shift-2). To use PseuDOS the
system variable CPC$DOS should be set to PseuDOS (*SET CPC$DOS PseuDOS).
!AmsToArc (as found in the Support subdirectory in !CPC_Demo) should be
used to make PseuDOS format files -- see the help file there for more
details.
CheckSnap and CheckDisc, as found in the Support subdirectory, allow you
to check whether a snap or a disc is broken in some way. Simply
double-click to launch, and give the name of the snap or disc to be
checked when prompted.
Treat both AMSDOS and PseuDOS with care -- don't do unexpected things.
For example, if you are using floppy discs, try to keep the disc in the
drive all the time. If you are saving under PseuDOS, make sure there's
enough free space, and that the disc isn't write-protected.
Configuring !CPC_Demo
---------------------
!CPC_Demo can be configured by editing the file !Config in !CPC_Demo.
After you've edited this file, double-click on it to execute it.
By changing the value for CPC$ScreenMode you can change the screen mode
!CPC_Demo uses. Recommended values are 12 if you have a low resolution
monitor (or TV), 20 or 27 if you have a multisync or VGA monitor, or 46
if you have a CGA monitor. A value of -1 will select the screen mode in
use when !CPC_Demo is launched. In all cases the screen mode must be a
16-colour mode. If you have a RiscPC, you can use a string such as
X640Y400C16 to select such a mode if it is appropriate.
CPC$Slowdown selects the amount of slowdown to be used for fast machines
(RiscPCs) to make them as slow as a real CPC. Values of the order of
10000 should be OK.
CPC$DOS selects the DOS -- use either AMSDOS or PseuDOS. If AMSDOS, you
can specify a disc name with CPC$Disc.
CPC$MachineType selects the machine type. You can choose either 464,
664 or 6128. Please read the section on machine types below for
guidance.
If you would like to change the place where tapes, discs or snaps are to
be found, you can alter DriveA, CPCDisc$Path and CPCSnap$Path. Note the
latter two are path variables, so you can have more than one directory
of discs or snaps -- but remember to put a trailing dot!
The other variables should not normally need changing.
Machine types
-------------
There is a bug in BASIC 1.0 as found on the 464 which means strings
cannot be used in | commands. The result is that you cannot for example
use |SNAP,"MEGADETH" to run Megadeth II - final carnage, but have to use
A$="MEGADETH":|SNAP,@A$ instead. Don't use the 464 machine type unless
a program won't work with any others.
If you use the 6128 machine type, a program may assume you've got extra
RAM available, and try to make use of it. Using the 664 machine type
should prevent this. Some snapshots, however, may only work with the
6128 machine type. You'll have to try and see.
Limitations
-----------
Disc handling is limited, as discussed above.
The Z80 R register is not emulated. This means some programs which
use R as a source of random numbers will behave rather predictably.
Z80 BCD operations are not emulated properly. This means some programs
won't count properly, which could be either very useful or very
disastrous!
Z80 parity operations are not emulated. This will only rarely cause
trouble.
Sound is not supported.
You cannot save snaps or make screendumps.
RAM banking (a la CPC6128) is not supported -- you'll get an error
message ('Internal error: BANK').
Extension ROMs are not supported.
Thanks
------
Thanks are due to a large number of people. I fear the list below may
be incomplete: not having kept a list right from the start, I had to
compile one from my records. If you feel you've been left out, please
do not hesitate to get in touch; I'll immediately set the record straight!
Nothing should be read into the ordering of this list (it is
actually ordered by e-mail address!).
Jim Nagel, for a mention in his Computer Shopper column
Cliff Lawson, for permission to distribute Amstrad copyright material
Dave Long, for getting me to release !CPC in the first place
Frederic Elisei, pour les echanges techniques presque en continu
Kevin Thacker, for his stupendous WWW site, lots of FDC info, etc.
Nige Jones, for !CPCFront and valuable discussions
Richard Black, for info on ARM2/3 speed optimisations
Andrew Hodgkinson, for info on WimpSlot intricacies
Alan Glover, for accepting to post my propaganda to c.s.a.announce
Arnt Gulbrandsen, for ftp.nvg.unit.no
Adam Parsons, for !CPCDisk
Mike Borcherds, for info on emulation intricacies
Bernd Schmidt, for info on emulation intricacies
Mark Wooding, for info on RISC OS intricacies
Dave Allison, for info on task killers
Frank Cringle, for yaze and its brilliant Z80 exerciser
Martin Wheatley, for the games list and valuable discussions
Ian Johnson, for info on task killers
Mark Sinclair, for his MDFs for RiscPCs
Andreas Stroiczek, for competition (!CPCEmu)
Noel Llopis, for ftp.nvg.unit.no
Richard Fairhurst, for FDC info
Richard Clayton, for permission to distribute Locomotive Software copyright material
Emmanuel Roussin, for the CPC FAQ and ftp.ibp.fr
Richard Wilson, for info on the Wimp
Susanne Albrecht, for info on Z80 block I/O ops
Sue Sound, for info on Z80 block I/O ops
Thomas Hawtin, for excellent ideas about speeding-up the emulator
Tony ?, for info on Z80 block I/O ops
Thomas Down, for info on task killers
Timothy Partridge, for info on ARM2/3 speed optimisations
All the spodders on Egham Hills, for lots of technical chit-chat
Everybody who tried out !CPC while it was in its beta test phase
Everybody who showed their appreciation by contributing to the full version
And everybody else who gave me valuable feedback and encouragment!
Kaj kompreneble Marianne, kiu toleris mian duon-edzighon al la komputilo!
No thanks to those who promised feedback and didn't provide any.
Feedback
--------
Feedback of any nature is very welcome! Please write to the author.
The full version, !CPC
----------------------
A full version of this emulator, !CPC, is available, which fixes most of
the limitations above. It is available only from the author.
!CPC is free, but you are asked to consider making a contribution to
its development. Something in the range GBP 10-20 is suggested,
depending on your appreciation of the program and your level of use.
To get !CPC, write to the author. If you have access to the Internet,
try e-mail first. Failing that, send a stamped self-addressed envelope
together with a blank, formatted 800K (double density) disc to the
author. Please note that if any of these ingredients is missing, no
response is likely to be forthcoming!
No guarantees of any kind are made concerning operation of !CPC. It has
been tested on an 4 MB A440/1 with ARM3/25. It will probably not work
with only 1 MB.
Also note that making a contribution does not guarantee you any future
updates, though it is planned to make these available on the Internet,
or by sending a disc and SAE as above.
Contact details
---------------
Mark RISON
Caius College
GB - Cambridge CB2 1TA
UNITED KINGDOM
rison@hep.phy.cam.ac.uk
Mark.Rison@cern.ch
1996-02-11